home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (DO)
/
Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].zip
/
Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].do
/
FUNCTION GRAPH.bas
< prev
next >
Wrap
BASIC Source File
|
1996-12-24
|
4KB
|
92 lines
10 REM ************************
11 REM * *
12 REM * GRAPHING RATIONAL *
14 REM * FUNCTIONS *
16 REM * RON CARLSON *
18 REM * *
20 REM * FUNCTION GRAPH *
21 REM * *
22 REM * COPYRIGHT (C) 1981 *
23 REM * MICRO INK, INC. *
24 REM * CHELMSFORD, MA 01824 *
25 REM * ALL RIGHTS RESERVED *
26 REM * *
27 REM ************************
50 :
60 DEF FN NUM(X) = X
70 DEF FN DEN(X) = (X +2)
75 :
80 REM DEF FN DEN(X)=1>> IF YOU HAVE A NON-RATIONAL GRAPH
85 :
90 HOME : INPUT "THERE ARE 280 HORIZANTAL DOTS. HOW MANY DOTS/UNIT DO YOU WANT?";S
100 VTAB 21: PRINT "INDICATE THE INTENDED LOCATION OF THE ORIGIN BY MOVING THE CURSOR WITH THE L R U D KEYS. F=FINISHED"
110 REM THIS ALLOWS THE USER TO SELECT WHICH AREA OF THE GRAPH TO VIEW
120 GOSUB 620: REM TO POSITION THE ORIGIN
130 REM S WILL BE THE SCALE
140 REM DETAIL INCREASES AS S INCREASES
150 VTAB 21: PRINT "AFTER THE BOTTOM HALF OF THE GRAPH IS FINISHED, HIT ANY KEY"
160 PRINT "THERE IS A HASH MARK (/) ON THE AXIS FOR EACH UNIT"
170 HGR : HCOLOR= 7
180 REM AXIS, WITH THE REAL AXIS AT (A,B)
190 HPLOT O,B TO 279,B: HPLOT A,0 TO A,191
200 REM HASH MARKS EVERY UNIT ON THE AXIS
210 FOR H = A TO 279 STEP S: HPLOT H,B -2 TO H,B +2: NEXT
220 FOR H = A TO 0 STEP -S: HPLOT H,B -2 TO H,B +2: NEXT
230 FOR V = B TO 191 STEP S: HPLOT A -2,V TO A +2,V: NEXT
240 FOR V = B TO 0 STEP -S: HPLOT A -2,V TO A +2,V: NEXT
250 REM ACTUAL GRAPHING
260 FOR H = 0 TO 279
270 REM TRANSFER THE HGR COOR TO THE REAL VALUE
280 X = (H -A)/S:D = FN DEN(X)
290 REM DRAW THE VERTICAL ASYMPTOTES IF NECESSARY
300 IF D = 0 THEN HCOLOR= 3: HPLOT H,0 TO H,191: HCOLOR= 7: GOTO 350
310 Y = FN NUM(X)/D:V = B -Y *S
320 REM TRANSFORM THE REAL Y VALUE TO HGR AND SEE IF IT STILL ON THE SCREEN
330 IF V >191 OR V <0 THEN 350
340 HPLOT H,V
350 NEXT H
370 REM THIS POKE WILL DISPLAY THE BOTTOM QUARTER OF THE GRAPH
380 POKE -16302,0: GET A$
390 TEXT : HOME
400 INPUT "DO YOU WANT TO SHIFT THE ORIGIN AND CHANGE SCALE?";A$
410 IF A$ = "Y" OR A$ = "YES" THEN 90
420 GOTO 830
440 HOME : PRINT " DIRECTIONS FOR RATIONAL FUNCTIONS"
450 PRINT " YOU MUST DEFINE YOUR FUNCTION IN TERMS OF NUMERATOR AND DENOMINATOR"
460 PRINT " FOR EXAMPLE IF YOU WISH TO GRAPH THE FOLLOWING:"
470 PRINT " (X-1)(X+2)"
480 PRINT " Y = ----------"
490 PRINT " X(X-7)"
500 PRINT : PRINT " YOU WOULD TYPE THE FOLLOWING"
510 PRINT "60 DEF FNNUM(X)=(X-1)*(X+2)"
520 PRINT "70 DEF FNDEN(X)=X*(X-7)
530 PRINT "RUN"
540 PRINT : FLASH : PRINT "REMEMBER :"
550 PRINT "60 DEF FNNUM(X)=";: NORMAL : PRINT "LEGAL BASIC EXPRESSION"
560 FLASH : PRINT "70 DEF FNDEN(X)=";: NORMAL : PRINT "LEGAL BASIC EXPRESSION"
570 PRINT "RUN"
580 GOTO 830
600 REM POSITIONING THE ORIGIN OF THE SCREEN (40,40)
610 REM USING L R U D AND F
620 GR : COLOR= 3: PLOT 20,20:A = 20:B = 20
630 GET A$
640 A1 = A:B1 = B
650 IF A$ = "U" THEN B = B -1: GOTO 710
660 IF A$ = "D" THEN B = B +1: GOTO 710
670 IF A$ = "L" THEN A = A -1: GOTO 710
680 IF A$ = "R" THEN A = A +1: GOTO 710
690 IF A$ = "F" THEN 800
700 REM KEEP ON THE LO RES SCREEN
710 IF B <1 THEN B = 1
720 IF B >39 THEN B = 39
730 IF A <1 THEN A = 1
740 IF A >39 THEN A = 39
750 REM BLANK OLD POSITION
760 COLOR= 0: PLOT A1,B1: COLOR= 3
770 REM PLOT NEW POSITION
780 PLOT A,B
790 GOTO 630
800 A = 7 *A:B = B *192/40
810 REM CHANGE SCALE TO REFLECT HGR (280 BY 192)
820 TEXT : HOME : RETURN
830 END